/**
 * 给你一个字符串 s 和一个字符串数组 dictionary 作为字典，找出并返回字典中最长的字符串，该字符串可以通过删除 s 中的某些字符得到。
 *
 * 如果答案不止一个，返回长度最长且字典序最小的字符串。如果答案不存在，则返回空字符串。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * 解题思路：使用双指针方法记录字符串的长度
 */
public class WorldDel {

    public String findWorld(String[] worldArray,String word){
        String res="";
        if(worldArray.length==0){
            return res;
        }
        for(String s:worldArray){
            int i=0,j=0;
            while (i<s.length()&&j<word.length()){
                if(s.charAt(i)==word.charAt(j)){
                    i++;
                    j++;
                }else {
                    j++;
                }
            }
            if(i==s.length()){
                if(s.length()>res.length()||(s.length() == res.length() && s.compareTo(res) < 0)){
                    res=s;
                }
            }
        }
        return res;
    }

    public static void main(String[] args) {
        WorldDel worldDel=new WorldDel();
        String s = "abpcplea";
        String[] dictionary = {"a","b","c"};
        String a=worldDel.findWorld(dictionary,s);
        System.out.println(a);
    }
}
